function handleData(data, vm) {

    if (data.code == 0) {
        return data.data;
    } else {
        vm.$Message.error({
            content: data.msg,
            duration: 5
        });
    }
}

function handleDataNotify(data, vm) {

    if (data.code == 0) {
        return data.data;
    } else {
        vm.$notify({
            message: data.msg,
            duration: 3000
        });
    }
}

/**
 * 使用循环的方式判断一个元素是否存在于一个数组中
 * @param {Object} arr 数组
 * @param {Object} value 元素值
 */
function isInArray(arr, value) {
    for (var i = 0; i < arr.length; i++) {
        if (value === arr[i]) {
            return true;
        }
    }
    return false;
}


/**
 * localStorage 的基础操作封装
 */
function setStorageL(key, value) {
    localStorage.setItem(key, JSON.stringify(value));
}

function getStorageL(key) {
    return JSON.parse(localStorage.getItem(key));
}

function removeStorageL(key) {
    localStorage.removeItem(key)
}

/**
 * localStorage 的基础操作封装
 */
function setStorageS(key, value) {
    sessionStorage.setItem(key, JSON.stringify(value));
}

function getStorageS(key) {
    return JSON.parse(sessionStorage.getItem(key));
}

function removeStorageS(key) {
    sessionStorage.removeItem(key)
}

/**
 * 时间戳转换
 * @param timestamp
 */
function formatDate(date,fmt) {
    let o = {
        'M+': date.getMonth() + 1, // 月份
        'd+': date.getDate(), // 日
        'h+': date.getHours(), // 小时
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'S': date.getMilliseconds() // 毫秒
    }
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    for (var k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
        }
    }
    return fmt
}

 function getUrlKey(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null
}

export default {
    handleData,
    handleDataNotify,
    setStorageL,
    getStorageL,
    removeStorageL,
    setStorageS,
    getStorageS,
    removeStorageS,
    isInArray,
    formatDate,
    getUrlKey
}
